/*
 * Copyright 2012-2016 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.sbt.endpoint;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ws.server.endpoint.annotation.Endpoint;
import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
import org.springframework.ws.server.endpoint.annotation.RequestPayload;
import org.springframework.ws.server.endpoint.annotation.ResponsePayload;
import com.sbt.repository.CountryRepository;
import com.sbt.webservice.ParamRequest;
import com.sbt.webservice.ResultResponse;


@Endpoint
public class CountryEndpoint {
	
	private Logger logger = LoggerFactory.getLogger(getClass());
	
	private static final String NAMESPACE_URI = "http://www.sbt.com/webservice";
	
	@Autowired 
	private CountryRepository countryRepository; 
	
	public CountryEndpoint(CountryRepository countryRepository) {
		this.countryRepository = countryRepository; 
	}
	//配置对外接口
    @SuppressWarnings("static-access")
	@PayloadRoot(namespace = NAMESPACE_URI, localPart = "paramRequest")
    @ResponsePayload
    public ResultResponse getCountry(@RequestPayload ParamRequest request) {
    	ResultResponse response = null;
    		response = new ResultResponse();
			logger.info("==> name[{}] space[{}]",request.getName(), request.getSpace());
			response.setCountry(countryRepository.findCountry(request.getName()));
//			logger.info("==> response[{}]",response);
//			return response;
    	
    	/*try {
			Thread.sleep(90000L);
		} catch (InterruptedException e) {
			
			System.out.println("==> e[{}]"+e.getMessage());
		}*/
    	logger.info("===============================");
    	return response;
    }
}